package com.tn.utils;

import com.tn.controller.alarm.common.constants.Constants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;

/**
 * @ClassName Md5Util
 * @Description TODO
 * @Author Yezhongzhu
 * @Date 2021/12/6 13:46
 * @Version v1.0
 **/
@Slf4j
public class Md5Util {
   /**
    * MD5方法
    * @param text 明文
    * @param key 密钥
    * @return 密文
    * @throws Exception
    */
    public static String md5(String text, String key) throws Exception {
        //加密后的字符串
        String encodeStr= DigestUtils.md5Hex(text + key);
        log.info("MD5加密后的字符串为:encodeStr:{}",encodeStr);
        return encodeStr;
    }

   /**
    * MD5验证方法
    * @param text 明文
    * @param key 密钥
    * @param md5 密文
    * @return true/false
    * @throws Exception
    */
    public static boolean verify(String text, String key, String md5){
        try {
            //根据传入的密钥进行验证
            String md5Text = md5(text, key);
            if(md5Text.equalsIgnoreCase(md5)){
                log.info("MD5验证通过");
                return true;
            }
            return false;
        } catch (Exception e) {
            log.error("MD5验证失败");
        }
        return false;
    }

    public static void main(String[] args) throws Exception{
        System.out.println(md5("HSXG1523839327000", Constants.OtherSys.PRODUCE_SYS_KEY)); // a6cc5a505509f064137a33ca3348cf03
    }
}
